home *** CD-ROM | disk | FTP | other *** search
- ;-> Orologio by Stefano Regattin
- ;d> 9 ottobre 1998 da Clock
- ;m> 10,11,16,17,19,24,29 ottobre 1998
- ;m> 4,6 novembre 1998
- ;m> 13,14,23 dicembre 1998
- ;m> 3 gennaio 1999
- ;m> 9,12 marzo 1999
- ;m> 25,26 settembre 1999
- ;m> 1,2,3,5,6,7,8,9,10,11,22 febbraio 2000
- ;------------------------------------------
- #HaiCambiatoLeDimensioniDellaFinestra=2
- #HaiPremutoUnTastoDelTopo=8
- #HaiRilasciatoUnGadget=$40
- #HaiChiusoLaFinestra=$200
-
- DEFTYPE .l RastPortFinestra
-
- DEFTYPE .b AltezzaFontRegistrata,NumeroToolType,ToolTypeScritti
-
- DEFTYPE .w
-
- AltezzaFont.b=13
-
- Statement ApriFinestraZero{}
- SHARED LunXFinestraZero
- SHARED LunYFinestraZero
- SHARED PosXFinestraZero
- SHARED PosYFinestraZero
- SHARED RastPortFinestra
- Window 0,PosXFinestraZero,PosYFinestraZero,LunXFinestraZero,LunYFinestraZero,$140F,"",1,2
- WTitle "Orologio","by Stefano Regattin e-mail>StefanoRegattin@lycosmail.com"
- RastPortFinestra=RastPort(0)
- WindowFont 0
- End Statement
-
- Statement LeggiToolType{}
- SHARED FontOrologio$
- SHARED FontOrologioRegistrato$
- SHARED IconaOrologio$
- SHARED AltezzaFont
- SHARED AltezzaFontRegistrata
- SHARED PosXFinestraZero
- SHARED PosXFinestraZeroRegistrata
- SHARED PosYFinestraZero
- SHARED PosYFinestraZeroRegistrata
- ToolTypeLetti.l=GetIconObject(IconaOrologio$)
- If ToolTypeLetti>0
- NuovoFontOrologio$=FindToolValue("FONTNAME")
- NuovaAltezzaFont$=FindToolValue("FONTSIZE")
- NuovaPosXFinestraZero$=FindToolValue("WINDOWX")
- NuovaPosYFinestraZero$=FindToolValue("WINDOWY")
- If NuovoFontOrologio$<>""
- FontOrologioRegistrato$=NuovoFontOrologio$
- FontOrologio$=NuovoFontOrologio$
- EndIf
- If NuovaAltezzaFont$<>""
- AltezzaFontRegistrata=Val(NuovaAltezzaFont$)
- AltezzaFont=Val(NuovaAltezzaFont$)
- EndIf
- If NuovaPosXFinestraZero$<>""
- PosXFinestraZeroRegistrata=Val(NuovaPosXFinestraZero$)
- PosXFinestraZero=Val(NuovaPosXFinestraZero$)
- EndIf
- If NuovaPosYFinestraZero$<>""
- PosYFinestraZeroRegistrata=Val(NuovaPosYFinestraZero$)
- PosYFinestraZero=Val(NuovaPosYFinestraZero$)
- EndIf
- FreeIconObject
- EndIf
- End Statement
-
- Statement ScriviToolType{}
- SHARED FontOrologio$
- SHARED FontOrologioRegistrato$
- SHARED IconaOrologio$
- SHARED AltezzaFont
- SHARED AltezzaFontRegistrata
- SHARED PosXFinestraZero
- SHARED PosXFinestraZeroRegistrata
- SHARED PosYFinestraZero
- SHARED PosYFinestraZeroRegistrata
- SHARED ToolTypeScritti
- ToolTypeLetti.l=GetIconObject(IconaOrologio$)
- If ToolTypeLetti>0
- If FindToolType("DONOTWAIT")=False Then NewToolType "DONOTWAIT",""
- If FindToolType("FONTNAME")=True
- SetToolValue "FONTNAME",FontOrologio$
- Else
- NewToolType "FONTNAME",FontOrologio$
- EndIf
- If FindToolType("FONTSIZE")=True
- SetToolValue "FONTSIZE",Str$(AltezzaFont)
- Else
- NewToolType "FONTSIZE",Str$(AltezzaFont)
- EndIf
- If FindToolType("WINDOWX")=True
- SetToolValue "WINDOWX",Str$(PosXFinestraZero)
- Else
- NewToolType "WINDOWX",Str$(PosXFinestraZero)
- EndIf
- If FindToolType("WINDOWY")=True
- SetToolValue "WINDOWY",Str$(PosYFinestraZero)
- Else
- NewToolType "WINDOWY",Str$(PosYFinestraZero)
- EndIf
- ToolTypeScritti=PutIconObject(IconaOrologio$)
- If ToolTypeScritti=True
- FontOrologioRegistrato$=FontOrologio$
- AltezzaFontRegistrata=AltezzaFont
- PosXFinestraZeroRegistrata=PosXFinestraZero
- PosYFinestraZeroRegistrata=PosYFinestraZero
- EndIf
- FreeIconObject
- EndIf
- End Statement
-
- Statement CercaFont{}
- SHARED FontOrologio$
- SHARED AltezzaFont
- NEWTYPE .FontInfo
- Nome$
- Altezza.w
- Stile.b
- Segnalatori
- PennaUno
- PennaDue
- ModoDisegno
- Pad
- End NEWTYPE
-
- *Font.FontInfo=ASLFontRequest(0)
-
- If *Font<>0
- FontOrologio$=*Font\Nome
- AltezzaFont=*Font\Altezza
- EndIf
- End Statement
-
- Statement Impostazioni{}
- SHARED OraAllarme$
- SHARED OraDiOggi$
- SHARED FontOrologio$
- SHARED FontOrologioRegistrato$
- SHARED AltezzaFont
- SHARED AltezzaFontRegistrata
- SHARED LunXSchermo
- SHARED PosXFinestraZero
- SHARED PosXFinestraZeroRegistrata
- SHARED PosYFinestraZero
- SHARED PosYFinestraZeroRegistrata
- SHARED StatoAllarme
- SHARED ToolTypeScritti
- StringGadget 0,1,1,0,0,6,6*8
- StringGadget 0,1,14,0,1,25,106
- StringGadget 0,75,1,0,2,4,4*8
- TextGadget 0,58,1,1,3,"A"
- StringGadget 0,9,27,0,4,5,5*8
- StringGadget 0,67,27,0,5,5,5*8
- TextGadget 0,3,40,1,6,"*** Salva ***"
- PosXFinestraZero=WindowX-WLeftOff
- PosYFinestraZero=WindowY-WTopOff
- PosXFinestraUno=WindowX
- PosYFinestraUno=WindowY
- LunXFinestraUno=124
- LunYFinestraUno=74
- If PosXFinestraUno+124>LunXSchermo Then PosXFinestraUno=LunXSchermo-124
- If PosYFinestraUno+74>WBHeight Then PosYFinestraUno=WBHeight-74
- Window 1,PosXFinestraUno,PosYFinestraUno,LunXFinestraUno,LunYFinestraUno,$140A,"",1,2,0
- WTitle "Impostazioni","Imposta le variabili dell'orologio"
- WindowFont 1
- WLocate 0,29:Print "X"
- WLocate 58,29:Print"Y"
- If OraAllarme$="" Then OraAllarme$=UnLeft$(OraDiOggi$,3)
- Repeat
- SetString 0,0,OraAllarme$
- Redraw 1,0
- SetString 0,1,FontOrologio$
- Redraw 1,1
- SetString 0,2,Str$(AltezzaFont)
- Redraw 1,2
- SetString 0,4,Str$(PosXFinestraZero)
- Redraw 1,4
- SetString 0,5,Str$(PosYFinestraZero)
- Redraw 1,5
- ValoriCambiati.b=False
- If FontOrologio$<>FontOrologioRegistrato$ Then ValoriCambiati=True
- If AltezzaFont<>AltezzaFontRegistrata Then ValoriCambiati=True
- If PosXFinestraZero<>PosXFinestraZeroRegistrata Then ValoriCambiati=True
- If PosYFinestraZero<>PosYFinestraZeroRegistrata Then ValoriCambiati=True
- If ValoriCambiati=True Then Enable 0,6 Else Toggle 0,6,Off:Disable 0,6
- Redraw 1,6
- EventoFinestra.l=WaitEvent
- If EventoFinestra=#HaiRilasciatoUnGadget
- If GadgetHit<>3 AND GadgetHit<>6 Then ActivateString 1,GadgetHit
- Select GadgetHit
- Case 0
- OraAllarme$=StringText$(0,0)
- Case 1
- NuovoFontOrologio$=StringText$(0,1)
- If NuovoFontOrologio$="" Then CercaFont{}
- If Right$(NuovoFontOrologio$,5)<>".font" Then NuovoFontOrologio$+".font"
- If Len(NuovoFontOrologio$)>0
- If Exists("FONTS:"+NuovoFontOrologio$)
- FontOrologio$=NuovoFontOrologio$
- EndIf
- EndIf
- Case 2
- AltezzaFont=Val(StringText$(0,2))
- AltezzaFont=Max(AltezzaFont,6)
- Case 3
- StatoAllarme=GadgetStatus(0,3)
- Case 4
- PosXFinestraZero=Val(StringText$(0,4))
- Case 5
- PosYFinestraZero=Val(StringText$(0,5))
- Case 6
- ScriviToolType{}
- If ToolTypeScritti=True
- Toggle 0,6,Off
- Disable 0,6
- Redraw 1,6
- Else
- Toggle 0,6,On
- EndIf
- End Select
- EndIf
- Until EventoFinestra=#HaiChiusoLaFinestra
- CloseWindow 1
- Use Window 0
- WindowFont 0
- End Statement
-
- Statement DataDiOggi{}
- SHARED Allarme$
- SHARED DataDiOggi$
- SHARED LunghezzaDataDiOggi
- SHARED LunghezzaScrittaAllarme
- SHARED RastPortFinestra
- Select WeekDay
- Case 0
- GiornoDellaSettimana$="Dom"
- Case 1
- GiornoDellaSettimana$="Lun"
- Case 2
- GiornoDellaSettimana$="Mar"
- Case 3
- GiornoDellaSettimana$="Mer"
- Case 4
- GiornoDellaSettimana$="Gio"
- Case 5
- GiornoDellaSettimana$="Ven"
- Case 6
- GiornoDellaSettimana$="Sab"
- End Select
- Giorno$=Str$(Days)
- Select Months
- Case 1
- Mese$="gennaio"
- Case 2
- Mese$="febbraio"
- Case 3
- Mese$="marzo"
- Case 4
- Mese$="aprile"
- Case 5
- Mese$="maggio"
- Case 6
- Mese$="giugno"
- Case 7
- Mese$="luglio"
- Case 8
- Mese$="agosto"
- Case 9
- Mese$="settembre"
- Case 10
- Mese$="ottobre"
- Case 11
- Mese$="novembre"
- Case 12
- Mese$="dicembre"
- End Select
- Anno$=Str$(Years)
- DataDiOggi$=" "+GiornoDellaSettimana$+", "+Giorno$+" "+Mese$+" "+Anno$+" "
- LunghezzaDataDiOggi.w=TextLength_(RastPortFinestra,&DataDiOggi$,Len(DataDiOggi$))
- End Statement
-
- WBStartup
-
- AltezzaFontSchermo.b=8
- OpenFontPrefs
- AltezzaFontSchermo.b=DefaultFontHeight(2)
- CloseFontPrefs
-
- WbToScreen 0
-
- IndirizzoSchermo.l=Peek.l(Addr Screen(0))
- LunXSchermo=Peek.w(IndirizzoSchermo+12)
-
- FontOrologio$="Data70.font"
-
- PosXFinestraZero=0
- PosYFinestraZero=AltezzaFontSchermo+3
-
- IconaOrologio$=ProgPath$+".info"
-
- LeggiToolType{}
-
- LoadFont 0,FontOrologio$,AltezzaFont
-
- LoadFont 1,"topaz.font",8
-
- LunXFinestraZero=70
- LunYFinestraZero=30
-
- Window 0,PosXFinestraZero,PosYFinestraZero,LunXFinestraZero,LunYFinestraZero,$140F,"",1,2
- RastPortFinestra=RastPort(0)
- WindowFont 0
-
- DataDiOggi$=Date$(SystemDate)
-
- DataDiOggi{}
-
- LunXFinestraZero=22+LunghezzaDataDiOggi
- LunYFinestraZero=WTopOff+AltezzaFont*2+6
-
- ApriFinestraZero{}
-
- RaggioCerchio=AltezzaFont/2
-
- Repeat
- EventoFinestra.l=Event
- If EventoFinestra=#HaiCambiatoLeDimensioniDellaFinestra
- AltezzaFont=InnerHeight/2
- RaggioMassimoCerchio=AltezzaFont/2
- LoadFont 0,FontOrologio$,AltezzaFont
- WindowFont 0
- WCls
- EndIf
- If EventoFinestra=#HaiPremutoUnTastoDelTopo
- PrecedenteFontOrologio$=FontOrologio$
- PrecedenteAltezzaFont.b=AltezzaFont
- Impostazioni{}
- Use Window 0
- FinestraZeroAggiornata.b=False
- If FontOrologio$<>PrecedenteFontOrologio$ OR AltezzaFont<>PrecedenteAltezzaFont
- LoadFont 0,FontOrologio$,AltezzaFont
- WindowFont 0
- DataDiOggi{}
- LunXFinestraZero=WLeftOff+LunghezzaDataDiOggi+18
- LunYFinestraZero=WTopOff+AltezzaFont*2+6
- If PosXFinestraZero+LunXFinestraZero-1>LunXSchermo
- PosXFinestraZero=LunXSchermo-LunXFinestraZero
- EndIf
- If PosYFinestraZero+LunYFinestraZero-1>WBHeight
- PosYFinestraZero=WBHeight-LunYFinestraZero
- EndIf
- CloseWindow 0
- ApriFinestraZero{}
- FinestraZeroAggiornata=True
- EndIf
- If FinestraZeroAggiornata=False
- If PosXFinestraZero<>WindowX-WLeftOff OR PosYFinestraZero<>WindowY-WTopOff
- If PosXFinestraZero+LunXFinestraZero-1>LunXSchermo
- PosXFinestraZero=LunXSchermo-LunXFinestraZero
- EndIf
- If PosYFinestraZero+LunYFinestraZero-1>WBHeight
- PosYFinestraZero=WBHeight-LunYFinestraZero
- EndIf
- CloseWindow 0
- ApriFinestraZero{}
- EndIf
- EndIf
- RaggioMassimoCerchio=AltezzaFont/2
- RaggioCerchio=RaggioMassimoCerchio
- EndIf
- DataDiOggi$=Date$(SystemDate)
- DataDiOggi{}
- XData.w=(InnerWidth-LunghezzaDataDiOggi)/2
- WLocate XData,0:Print DataDiOggi$
- OraDiOggi$=Str$(Hours/10)
- OraDiOggi$+Str$(Hours MOD 10)+":"
- OraDiOggi$+Str$(Mins/10)
- OraDiOggi$+Str$(Mins MOD 10)+":"
- OraDiOggi$+Str$(Secs/10)
- OraDiOggi$+Str$(Secs MOD 10)
- LunghezzaOraDiOggi.w=TextLength_(RastPortFinestra,&OraDiOggi$,Len(OraDiOggi$))
- XOra.w=(InnerWidth-LunghezzaOraDiOggi)/2-1
- WLocate XOra,AltezzaFont:Print " ",OraDiOggi$," "
- If StatoAllarme=True
- If Left$(OraDiOggi$,5)=OraAllarme$ Then BeepScreen 0
- XAllarme=InnerWidth-1-AltezzaFont/2
- YAllarme=InnerHeight-1-AltezzaFont/2
- WCircle XAllarme,YAllarme,RaggioCerchio,1
- EndIf
- Delay_ 50
- If StatoAllarme=True
- WCircle XAllarme,YAllarme,RaggioCerchio,0
- RaggioCerchio+1
- If RaggioCerchio>RaggioMassimoCerchio Then RaggioCerchio=1
- EndIf
- Until EventoFinestra=#HaiChiusoLaFinestra
- End
-